package com.csproj.dispatch.domain;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.hibernate.annotations.GenericGenerator;

import javax.persistence.*;
import java.io.Serializable;
import java.time.ZonedDateTime;
import java.util.Objects;


/**
 * 物流信息表
 */
@ApiModel(description = "物流信息表")
@Entity
@Table(name = "t_dis_logistics")
public class Logistics implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(generator = "uuid")
    @GenericGenerator(name = "uuid", strategy = "uuid")
    @Column(name = "id")
    private String id;

    /**
     * 海关编号
     */
    @ApiModelProperty(value = "海关编号")
    @Column(name = "custom_code")
    private String customCode;

    /**
     * 集装箱编号
     */
    @ApiModelProperty(value = "集装箱主键")
    @Column(name = "container_id")
    private String containerId;

    /**
     * 集装箱编号
     */
    @ApiModelProperty(value = "集装箱编号")
    @Column(name = "container_code")
    private String containerCode;

    /**
     * 物流编号
     */
    @ApiModelProperty(value = "物流编号")
    @Column(name = "logistics_code")
    private String logisticsCode;

    /**
     * 进口商
     */
    @ApiModelProperty(value = "进口商")
    @Column(name = "importer")
    private String importer;

    /**
     * 进口日期
     */
    @ApiModelProperty(value = "进口日期")
    @Column(name = "import_time")
    private ZonedDateTime importTime;

    /**
     * 启运国（地区）
     */
    @ApiModelProperty(value = "启运国（地区）")
    @Column(name = "pod")
    private String pod;

    /**
     * 装货港
     */
    @ApiModelProperty(value = "装货港")
    @Column(name = "loadingport")
    private String loadingport;

    /**
     * 境内目的地
     */
    @ApiModelProperty(value = "境内目的地")
    @Column(name = "domesticdestination")
    private String domesticdestination;

    /**
     * 运输公司
     */
    @ApiModelProperty(value = "运输公司")
    @Column(name = "transportcompany")
    private String transportcompany;

    /**
     * 运输工具
     */
    @ApiModelProperty(value = "运输工具")
    @Column(name = "transporttool")
    private String transporttool;

    /**
     * 运输工具编号 车牌号、船、飞机等编号
     */
    @ApiModelProperty(value = "运输工具编号 车牌号、船、飞机等编号")
    @Column(name = "transport_code")
    private String transportCode;

    /**
     * 删除标志
     */
    @ApiModelProperty(value = "删除标志")
    @Column(name = "deleted_flag")
    private Boolean deletedFlag;

    /**
     * 删除人
     */
    @ApiModelProperty(value = "删除人")
    @Column(name = "deleter_user_id")
    private String deleterUserId;

    /**
     * 删除时间
     */
    @ApiModelProperty(value = "删除时间")
    @Column(name = "deletion_time")
    private ZonedDateTime deletionTime;

    /**
     * 最近更新时间
     */
    @ApiModelProperty(value = "最近更新时间")
    @Column(name = "last_modification_time")
    private ZonedDateTime lastModificationTime;

    /**
     * 最近更新人
     */
    @ApiModelProperty(value = "最近更新人")
    @Column(name = "last_modifier_user_id")
    private String lastModifierUserId;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @Column(name = "creation_time")
    private ZonedDateTime creationTime;

    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人")
    @Column(name = "creator_user_id")
    private String creatorUserId;

    // jhipster-needle-entity-add-field - JHipster will add fields here, do not remove
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getCustomCode() {
        return customCode;
    }

    public Logistics customCode(String customCode) {
        this.customCode = customCode;
        return this;
    }

    public void setCustomCode(String customCode) {
        this.customCode = customCode;
    }

    public String getContainerCode() {
        return containerCode;
    }

    public Logistics containerCode(String containerCode) {
        this.containerCode = containerCode;
        return this;
    }

    public void setContainerCode(String containerCode) {
        this.containerCode = containerCode;
    }

    public String getContainerId() {
        return containerId;
    }

    public Logistics containerId(String containerId) {
        this.containerId = containerId;
        return this;
    }

    public void setContainerId(String containerId) {
        this.containerId = containerId;
    }

    public String getLogisticsCode() {
        return logisticsCode;
    }

    public Logistics logisticsCode(String logisticsCode) {
        this.logisticsCode = logisticsCode;
        return this;
    }

    public void setLogisticsCode(String logisticsCode) {
        this.logisticsCode = logisticsCode;
    }

    public String getImporter() {
        return importer;
    }

    public Logistics importer(String importer) {
        this.importer = importer;
        return this;
    }

    public void setImporter(String importer) {
        this.importer = importer;
    }

    public ZonedDateTime getImportTime() {
        return importTime;
    }

    public Logistics importTime(ZonedDateTime importTime) {
        this.importTime = importTime;
        return this;
    }

    public void setImportTime(ZonedDateTime importTime) {
        this.importTime = importTime;
    }

    public String getPod() {
        return pod;
    }

    public Logistics pod(String pod) {
        this.pod = pod;
        return this;
    }

    public void setPod(String pod) {
        this.pod = pod;
    }

    public String getLoadingport() {
        return loadingport;
    }

    public Logistics loadingport(String loadingport) {
        this.loadingport = loadingport;
        return this;
    }

    public void setLoadingport(String loadingport) {
        this.loadingport = loadingport;
    }

    public String getDomesticdestination() {
        return domesticdestination;
    }

    public Logistics domesticdestination(String domesticdestination) {
        this.domesticdestination = domesticdestination;
        return this;
    }

    public void setDomesticdestination(String domesticdestination) {
        this.domesticdestination = domesticdestination;
    }

    public String getTransportcompany() {
        return transportcompany;
    }

    public Logistics transportcompany(String transportcompany) {
        this.transportcompany = transportcompany;
        return this;
    }

    public void setTransportcompany(String transportcompany) {
        this.transportcompany = transportcompany;
    }

    public String getTransporttool() {
        return transporttool;
    }

    public Logistics transporttool(String transporttool) {
        this.transporttool = transporttool;
        return this;
    }

    public void setTransporttool(String transporttool) {
        this.transporttool = transporttool;
    }

    public String getTransportCode() {
        return transportCode;
    }

    public Logistics transportCode(String transportCode) {
        this.transportCode = transportCode;
        return this;
    }

    public void setTransportCode(String transportCode) {
        this.transportCode = transportCode;
    }

    public Boolean isDeletedFlag() {
        return deletedFlag;
    }

    public Logistics deletedFlag(Boolean deletedFlag) {
        this.deletedFlag = deletedFlag;
        return this;
    }

    public void setDeletedFlag(Boolean deletedFlag) {
        this.deletedFlag = deletedFlag;
    }

    public String getDeleterUserId() {
        return deleterUserId;
    }

    public Logistics deleterUserId(String deleterUserId) {
        this.deleterUserId = deleterUserId;
        return this;
    }

    public void setDeleterUserId(String deleterUserId) {
        this.deleterUserId = deleterUserId;
    }

    public ZonedDateTime getDeletionTime() {
        return deletionTime;
    }

    public Logistics deletionTime(ZonedDateTime deletionTime) {
        this.deletionTime = deletionTime;
        return this;
    }

    public void setDeletionTime(ZonedDateTime deletionTime) {
        this.deletionTime = deletionTime;
    }

    public ZonedDateTime getLastModificationTime() {
        return lastModificationTime;
    }

    public Logistics lastModificationTime(ZonedDateTime lastModificationTime) {
        this.lastModificationTime = lastModificationTime;
        return this;
    }

    public void setLastModificationTime(ZonedDateTime lastModificationTime) {
        this.lastModificationTime = lastModificationTime;
    }

    public String getLastModifierUserId() {
        return lastModifierUserId;
    }

    public Logistics lastModifierUserId(String lastModifierUserId) {
        this.lastModifierUserId = lastModifierUserId;
        return this;
    }

    public void setLastModifierUserId(String lastModifierUserId) {
        this.lastModifierUserId = lastModifierUserId;
    }

    public ZonedDateTime getCreationTime() {
        return creationTime;
    }

    public Logistics creationTime(ZonedDateTime creationTime) {
        this.creationTime = creationTime;
        return this;
    }

    public void setCreationTime(ZonedDateTime creationTime) {
        this.creationTime = creationTime;
    }

    public String getCreatorUserId() {
        return creatorUserId;
    }

    public Logistics creatorUserId(String creatorUserId) {
        this.creatorUserId = creatorUserId;
        return this;
    }

    public void setCreatorUserId(String creatorUserId) {
        this.creatorUserId = creatorUserId;
    }
    // jhipster-needle-entity-add-getters-setters - JHipster will add getters and setters here, do not remove

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        Logistics logistics = (Logistics) o;
        if (logistics.getId() == null || getId() == null) {
            return false;
        }
        return Objects.equals(getId(), logistics.getId());
    }

    @Override
    public int hashCode() {
        return Objects.hashCode(getId());
    }

    @Override
    public String toString() {
        return "Logistics{" +
            "id=" + getId() +
            ", customCode='" + getCustomCode() + "'" +
            ", containerCode='" + getContainerCode() + "'" +
            ", logisticsCode='" + getLogisticsCode() + "'" +
            ", importer='" + getImporter() + "'" +
            ", importTime='" + getImportTime() + "'" +
            ", pod='" + getPod() + "'" +
            ", loadingport='" + getLoadingport() + "'" +
            ", domesticdestination='" + getDomesticdestination() + "'" +
            ", transportcompany='" + getTransportcompany() + "'" +
            ", transporttool='" + getTransporttool() + "'" +
            ", transportCode='" + getTransportCode() + "'" +
            ", deletedFlag='" + isDeletedFlag() + "'" +
            ", deleterUserId='" + getDeleterUserId() + "'" +
            ", deletionTime='" + getDeletionTime() + "'" +
            ", lastModificationTime='" + getLastModificationTime() + "'" +
            ", lastModifierUserId='" + getLastModifierUserId() + "'" +
            ", creationTime='" + getCreationTime() + "'" +
            ", creatorUserId='" + getCreatorUserId() + "'" +
            "}";
    }
}
